Mark esh-proc-test/kill-pipeline as unstable for now
authorRob Browning <rlb@defaultvalue.org>
Mon, 10 Nov 2025 18:20:23 +0000 (12:20 -0600)
committerSean Whitton <spwhitton@spwhitton.name>
Thu, 20 Nov 2025 18:00:16 +0000 (18:00 +0000)
Currently fails on at least s390x from time to time. It doesn't take
long to  reproduce via

  (set -ex; while true; do make lisp/eshell/esh-proc-tests EMACS_TEST_VERBOSE=true; done)

from debian/build-lucid/test/. The failure looks like this:

     passed   3/24  esh-proc-test/exit-status/with-stderr-pipe (0.101971 sec)
  Test esh-proc-test/kill-pipeline backtrace:
    signal(ert-test-failed (((should (string-match-p (rx bos (32 (or "in
    ert-fail(((should (string-match-p (rx bos (32 (or "interrupt" (seq "
    (if (unwind-protect (setq value-154 (apply fn-152 args-153)) (setq f
    (let (form-description-156) (if (unwind-protect (setq value-154 (app
    (let ((value-154 'ert-form-evaluation-aborted-155)) (let (form-descr
    (let* ((fn-152 #'string-match-p) (args-153 (condition-case err (list
    (let ((output-start (eshell-beginning-of-output))) (eshell-kill-proc
    (let ((ert--infos (cons (cons "Command logs: " #'eshell-get-debug-lo
    (save-current-buffer (set-buffer eshell-buffer) (let ((ert--infos (c
    (unwind-protect (save-current-buffer (set-buffer eshell-buffer) (let
    (let ((eshell-buffer (eshell t))) (unwind-protect (save-current-buff
    (let ((process-environment (cons "HISTFILE" process-environment)) (e
    (progn (let ((process-environment (cons "HISTFILE" process-environme
    (unwind-protect (progn (let ((process-environment (cons "HISTFILE" p
    (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
    (save-current-buffer (let* ((coding-system-for-write nil) (temp-file
    #f(lambda () [t] (let ((value-145 (gensym "ert-form-evaluation-abort
    #f(compiled-function () #<bytecode 0xadfd76a69b57547>)()
    handler-bind-1(#f(compiled-function () #<bytecode 0xadfd76a69b57547>
    ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
    ert-run-test(#s(ert-test :name esh-proc-test/kill-pipeline :document
    ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
    ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
    ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
    ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
    eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
    command-line-1(("-L" ":/home/rlb/emacs/debian/build-src/test" "-l" "
    command-line()
    normal-top-level()
  Test esh-proc-test/kill-pipeline condition:
      Command logs: command: "sh -c 'while true; do echo y; sleep 1; done' | sh -c 'while true; do read NAME; done'"

                    ----------------------------------------
                    [process] started external process `sh'

                    /usr/bin/sh -c while\ true\;\ do\ read\ NAME\;\ done
                    ----------------------------------------
                    [process] started external process `sh<1>'

                    /usr/bin/sh -c while\ true\;\ do\ echo\ y\;\ sleep\ 1\;\ done
                    ----------------------------------------
                    [process] received output from process `sh<1>'

                    y

                    ----------------------------------------
                    [process] forwarding output from process `sh<1>'

                    y

                    ----------------------------------------
                    [process] sentinel for external process `sh<1>': "killed
                    "
                    ----------------------------------------
                    [process] i/o busy for process `sh<1>'
                    ----------------------------------------
                    [process] sentinel for external process `sh-stderr': "finished
                    "
                    ----------------------------------------
                    [process] finished external process `sh-stderr'
                    ----------------------------------------
                    [process] sentinel for external process `sh': "killed
                    "
                    ----------------------------------------
                    [process] finished external process `sh'
      (ert-test-failed
       ((should
         (string-match-p (rx bos ... eos)
                        (buffer-substring-no-properties output-start ...)))
        :form
        (string-match-p "\\`\\(?:\\(?:interrupt\\|killed.*\\)\n\\)?\\'"
                       "/home/rlb/emacs/debian/build-lucid/test $ sh -c 'while true; do echo y; sleep 1; done' | sh -c 'while true; do read NAME; done'\n")
        :value nil))
     FAILED   4/24  esh-proc-test/kill-pipeline (0.003864 sec) at ../../build-src/test/lisp/eshell/esh-proc-tests.el:300
  Error running timer: (error "Selecting deleted buffer")
     passed   5/24  esh-proc-test/kill-pipeline-head (0.102912 sec)
     passed   6/24  esh-proc-test/kill-process/background-prompt (0.001595 sec)
  [sleep]+ Done (/usr/bin/sleep 100)
     passed   7/24  esh-proc-test/kill-process/foreground-only (0.203248 sec)
     passed   8/24  esh-proc-test/kill-process/redirect-message (0.001616 sec)
     passed   9/24  esh-proc-test/output/remote-redirect (0.160153 sec)

test/lisp/eshell/esh-proc-tests.el

index 06a3433cb4555ee87cfda79141be56c588f02a82..7fadba77f53e9d81cfecfe8c4a37a2b7f5d04dd9 100644 (file)
@@ -300,6 +300,10 @@ prompt.  See bug#54136."
 (ert-deftest esh-proc-test/kill-pipeline ()
   "Test that killing a pipeline of processes only emits a single
 prompt.  See bug#54136."
+  :tags '(:unstable)
+  ;; Sporadically fails on at least s390x. Fairly easy to see via
+  ;; (set -ex; while true; do make lisp/eshell/esh-proc-tests EMACS_TEST_VERBOSE=true; done)
+  ;; run from test/.
   (skip-unless (and (executable-find "sh")
                     (executable-find "echo")
                     (executable-find "sleep")))